﻿// ***********************************************************************
// Assembly         : YERIL_PI_INT
// Author           : Diego Bonilla
// Created          : 03-02-2014
//
// Last Modified By : Diego Bonilla
// Last Modified On : 03-02-2014
// ***********************************************************************
// <copyright file="Proyectos.aspx.cs" company="Development Solutions CR">
//     Copyright (c) Development Solutions CR. All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

/// <summary>
/// The Login namespace.
/// </summary>
namespace YERIL_PI_INT.PaginasWebs.Modulos.Login
{
    /// <summary>
    /// Class Proyectos.
    /// </summary>
    public partial class Proyectos : System.Web.UI.Page
    {
        /// <summary>
        /// The form accion
        /// </summary>
        static string FormAccion = "";
        /// <summary>
        /// The mensaje error
        /// </summary>
        public string MensajeError = "";
        /// <summary>
        /// The codigo
        /// </summary>
        static int codigo = 0;
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["FormAccion"] != null)
            {
                FormAccion = Session["FormAccion"].ToString();

            }

            if (Session["Codigo"] != null)
            {
                codigo = Convert.ToInt32(Session["Codigo"]);

            }

            if (!IsPostBack)
            {
                Cargar_Combos();
                dlCliente.SelectedValue = "1";
                dlEstadoProyecto.SelectedValue = "1";
                dlUsuario.SelectedValue = "1";
                if (FormAccion == "Editar")
                {
                    if (codigo != 0)
                    {
                        CargarEditar();
                    }
                }

            }

        }

        /// <summary>
        /// Cargars the editar.
        /// </summary>
        private void CargarEditar()
        {
            WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
            wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
            WSGestion.MOD_Proyecto objProyecto = new WSGestion.MOD_Proyecto();
            objProyecto = wsgest.SEL_ProyectoByID(codigo);
            txtNombreProyecto.Text = objProyecto.Proy_nombre;
            calInicio.SelectedDate = objProyecto.Proy_fechainicio;
            calFinal.SelectedDate = objProyecto.Proy_fechafin;
            txtVersion.Text = objProyecto.Proy_version.ToString();
            dlCliente.SelectedValue = objProyecto.Proy_codcliente.ToString();
            dlEstadoProyecto.SelectedValue = objProyecto.Proy_codestado.ToString();
            dlUsuario.SelectedValue = objProyecto.Proy_codusuario.ToString();
            txtUrl.Text = objProyecto.Proy_planoest.ToString();        
        }


        /// <summary>
        /// Cargar_s the combos.
        /// </summary>
        private void Cargar_Combos()
        {
            try
            {
                WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                List<WSGestion.MOD_Clientes> ListaClientes = wsgest.SEL_GRID_CLIENTES().ToList();
                this.dlCliente.DataSource = ListaClientes;
                this.dlCliente.DataValueField = "CLI_codcliente";
                this.dlCliente.DataTextField = "CLI_nombre";
                this.dlCliente.DataBind();

                List<WSGestion.MOD_Estado_Proyecto> ListaProyectos = wsgest.SEL_Grid_Estado_Proyectos().ToList();
                this.dlEstadoProyecto.DataSource = ListaProyectos;
                this.dlEstadoProyecto.DataValueField = "ESTPRO_codestado";
                this.dlEstadoProyecto.DataTextField = "ESTPRO_nombre";
                this.dlEstadoProyecto.DataBind();

                List<WSGestion.MOD_Usuarios> ListaUsuarios = wsgest.SEL_GRID_USUARIOS().ToList();
                this.dlUsuario.DataSource = ListaUsuarios;
                this.dlUsuario.DataValueField = "USU_codusuario";
                this.dlUsuario.DataTextField = "USU_nombre";
                this.dlUsuario.DataBind();

            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }
        }

        /// <summary>
        /// Handles the Click event of the btnSalir control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ImageClickEventArgs"/> instance containing the event data.</param>
        protected void btnSalir_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("GridProyectos.aspx");
        }

        /// <summary>
        /// Handles the Click event of the btnAgregarCliente control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ImageClickEventArgs"/> instance containing the event data.</param>
        protected void btnAgregarCliente_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (FormAccion == "Agregar")
                {
                    WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                    wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                    WSGestion.MOD_Proyecto Proyecto = new WSGestion.MOD_Proyecto();
                    Proyecto.Proy_nombre = txtNombreProyecto.Text;
                    Proyecto.Proy_fechainicio = Convert.ToDateTime(calInicio.SelectedDate.ToShortDateString());
                    Proyecto.Proy_fechafin = Convert.ToDateTime(calFinal.SelectedDate.ToShortDateString());
                    Proyecto.Proy_version =Convert.ToInt32( txtVersion.Text);
                    Proyecto.Proy_codcliente =Convert.ToInt32(dlCliente.SelectedValue.ToString());
                    Proyecto.Proy_codestado = Convert.ToInt32(dlEstadoProyecto.SelectedValue.ToString());
                    Proyecto.Proy_codusuario = Convert.ToInt32(dlUsuario.SelectedValue.ToString());
                    Proyecto.Proy_planoest = txtUrl.Text;
                    if (Proyecto.Proy_fechainicio >= Proyecto.Proy_fechafin)
                    {
                        MensajeError = "Fechas Incorrectas. Vuelva a intentarlo";
                    }
                    else 
                    {   codigo = wsgest.CRE_PROYECTO(Proyecto);
                        if (codigo != 0)
                        {
                        Session["CodigoUsuario"] = dlUsuario.SelectedValue.ToString();
                        Session["CodigoProyecto"] = codigo;
                        Response.Redirect("ProyectoParticipantes.aspx");
                        }
                        else
                        {
                        MensajeError = "Procedimiento Almacenado no aceptado";
                        }

                    }
                    

                    

                }

                if (FormAccion == "Editar")
                {
                    WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                    wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                    WSGestion.MOD_Proyecto Proyecto = new WSGestion.MOD_Proyecto();
                    Proyecto.Proy_codproyecto = codigo;
                    Proyecto.Proy_nombre = txtNombreProyecto.Text;
                    Proyecto.Proy_fechainicio = Convert.ToDateTime(calInicio.SelectedDate.ToShortDateString());
                    Proyecto.Proy_fechafin = Convert.ToDateTime(calFinal.SelectedDate.ToShortDateString());
                    Proyecto.Proy_version = Convert.ToInt32(txtVersion.Text);
                    Proyecto.Proy_codcliente = Convert.ToInt32(dlCliente.SelectedValue.ToString());
                    Proyecto.Proy_codestado = Convert.ToInt32(dlEstadoProyecto.SelectedValue.ToString());
                    Proyecto.Proy_codusuario = Convert.ToInt32(dlUsuario.SelectedValue.ToString());
                    Proyecto.Proy_planoest = txtUrl.Text;

                    wsgest.UPD_PROYECTO(Proyecto);
                    Session["CodigoUsuario"] = dlUsuario.SelectedValue.ToString();
                    Session["CodigoProyecto"] = codigo;
                    Response.Redirect("ProyectoParticipantes.aspx");

                }

            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }
           
        }
    }
}